<?php
/**
 * 材料类型管理及多级分类
 */
class wareclassController extends baseController
{

	public function show()
	{
		$pid = fetch_a_int('pid');

		$list = Db::get('WareClass')->select()->where(array('pid'=>$pid))->order('id ASC')->getAll();
		$this->assign('wareclass', $list);

//		echo Db::get('WareClass')->lastSql();
//		Debug::pre($list);
		
		if($pid) {
			$path = WareClassHelper::getPathNode($pid);
			$this->assign('path', $path);
		}

		$this->display();
	}

	/**  添加  */
	public function add()
	{
		$pid = fetch_a_int('pid');
		if($pid) {
			$pdata	= WareClass::find($pid);
			if(!$pdata){
				Show::warn('未找到该记录.');
			}
		}
		else{
			$pdata  =   array();
		}

		if(is_post())
		{
			if(!fetch_a_string('title')){
				Show::warn("标题不能为空.");
			}
			$_code	= strtoupper(fetch_a_string('code'));
			if(!$_code){
				Show::warn('材料编号必填');
			}

			if($pdata) {
				$path	= $pdata['path'].$pdata['id'].'/';
				$code	= $pdata['code'].'-'.$_code;
			}
			else {
				$path	= '/';
				$code	= $_code;
			}

			$data	= array(
				'pid'	=> $pid,
				'path'	=> $path,
				'title'	=> fetch_a_string('title'),
				'code'	=> $code,
			);
			$id	= WareClass::add($data);
			if($id){
				Show::ajaxBand(array('id'=>$id));
				Show::note('操作成功');
			}
			else{
				Show::warn("保存信息失败，可能存在相同编号.");
			}
		}

		if($pid) {
			$this->assign('path_name', WareClassHelper::getTruePath($pid,' > '));
			$this->assign('pdata', $pdata);
		}

		$this->display();
	}

	/**  修改  */
	public function modify()
	{
		$id		= fetch_a_int('id');
		$odata	= WareClass::find($id);
		if(!$id || !$odata){
			Show::warn("未找到该分类记录.");
		}

		if(is_post())
		{
			if(!fetch_a_string('title')){
				Show::warn("标题不能为空.");
			}
			$data	= array(
				'title'	=> fetch_a_string('title'),
				);
			if(WareClass::update($id, $data)){
				Show::ajaxBand(array('id'=>$id));
				Show::note('操作成功');
			}
			else
				Show::warn("保存信息失败，请稍候重试.");
		}

		if($odata['pid']){
			$this->assign('path_name', WareClassHelper::getTruePath($odata['pid'], ' > '));
		}
		$this->assign('wareclass',	$odata);

		$this->display('wareclass-add');
	}

	/** 删除子区域 */
	public function drop()
	{
		$id = fetch_a_int('id');
		$odata	= WareClass::find($id);
		if(!$id || !$odata)
			Show::warn("未找到该分类记录.");

		$path	= $odata['path'] . $odata['id'] .'/';

		/**
		 * todo:
		 * ware表里无class_path, _ware.class_path路径少两级
		 */

//		$job	= D("Stuff");
//		$count	= $job->count('cls_path LIKE "'.$path.'%"');
//		if($count >0)   //此记录在用，不删除，改变分类及其子类状态
//		{
//			$res	= $cls->save('deleted=1', "deleted=0 AND (id={$id} OR path LIKE '{$path}%')");
//		}
//		else
//		{
//			$res	= $cls->deleteAll("deleted=0 AND (id=$id OR path LIKE '$path%')");
//		}
//
//		return $res ?   $this->_success(null) : Show::warn("操作失败");
	}

	/** 级联菜单生成 */
	public function rec_stuffcls()
	{
		$rows = WareClass::getForList(array('pid'=>fetch_a_int('id')));
		Show::ajaxBand(array('items'=>$rows));
		Show::note("ok");
	}

}

?>
